/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package bea.cliente.environment.arena;

import bea.cliente.core.Game;
import com.jme3.bullet.collision.shapes.CollisionShape;
import com.jme3.bullet.control.RigidBodyControl;
import com.jme3.bullet.util.CollisionShapeFactory;
import com.jme3.renderer.queue.RenderQueue.ShadowMode;
import com.jme3.scene.Node;
import com.jme3.scene.Spatial;

/**
 *
 * @author Ivan
 */
public class Arena extends Node {
    // objeto que contém a cena 3D(Spatial)
    //carregada para esta arena

    private Spatial sceneModel;
    // objeto de controle do ambiente fisico da cena
    private RigidBodyControl psControl;

    public Arena(String name) {
        this.name = name;
    }
    
    public void init(Game game){
        // carrega o modelo 3d da cena de acordo com o nome atribuido a mesma
        this.sceneModel = game.getAssetManager().loadModel("Scenes/Arenas/"+name+".j3o");
        //shadow
        this.sceneModel.setShadowMode(ShadowMode.CastAndReceive);
        // controi uma shape de acordo com o modelo de cena carregado anteriormente
        CollisionShape shape = CollisionShapeFactory.createMeshShape((Node) sceneModel);
        // adicina o modelo da cena ao node
        if (sceneModel != null) {
            super.attachChild(sceneModel);
        }
        // instancia e adiciona um controle físico
        psControl = new RigidBodyControl(CollisionShapeFactory.createMeshShape(sceneModel), 0.0f);
        addControl(psControl);
    }

    public RigidBodyControl getPhysicsControl() {
        return psControl;
    }
}
